import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Dialogs

Window {
    id: root
    width: 640
    height: 480
    visible: true
    title: qsTr("MessageBox Demo")

    // 创建消息框管理器实例
    MessageBoxManager {
        id: messageManager
        parent: root
    }

    ColumnLayout {
        anchors.centerIn: parent
        spacing: 20

        Button {
            text: "默认消息框"
            onClicked: {
                messageManager.showQtMessageBox()
            }
        }

        Button {
            text: "自定义消息框 - 显示信息"
            onClicked: {
                messageManager.showInfo("信息", "这是一条信息类型的消息")
            }
        }

        Button {
            text: "自定义消息框 - 显示警告"
            onClicked: {
                messageManager.showWarning("警告", "这是一条警告类型的消息")
            }
        }

        Button {
            text: "自定义消息框 - 显示错误"
            onClicked: {
                messageManager.showError("错误", "这是一条错误类型的消息")
            }
        }

        Button {
            text: "自定义消息框 - 显示成功"
            onClicked: {
                messageManager.showSuccess("成功", "这是一条成功类型的消息")
            }
        }

        Button {
            text: "自定义消息框 - 显示问题"
            onClicked: {
                var msgBox = messageManager.showQuestion("问题", "您确定要执行此操作吗？")
                
                // 检查返回值是否有效
                if (msgBox) {
                    msgBox.accepted.connect(function() {
                        console.log("用户点击了'是'按钮")
                        // 在这里处理用户确认的逻辑
                    })
                    msgBox.rejected.connect(function() {
                        console.log("用户点击了'否'按钮")
                        // 在这里处理用户取消的逻辑
                    })
                } else {
                    console.error("消息框创建失败")
                    // 处理消息框创建失败的逻辑
                }
            }
        }
    }

    CustomMessageBox {
        id: infoDialog
        onAccepted: console.log("用户点击了确定按钮")
        onRejected: console.log("用户点击了取消按钮")
    }
}
